package com.ssy.lingxi.platform.template.service.service.adorn;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.template.service.entity.adorn.Advert;
import com.ssy.lingxi.platform.template.service.model.dto.adorn.AdvertDTO;
import com.ssy.lingxi.platform.template.service.model.dto.adorn.CategoryAdornDTO;
import com.ssy.lingxi.platform.template.service.model.dto.adorn.SaveAdvertDTO;
import com.ssy.lingxi.platform.template.service.model.dto.adorn.SaveTemplateAdornDTO;
import com.ssy.lingxi.platform.template.service.model.dto.common.MemberIdAndRoleIdDTO;
import com.ssy.lingxi.platform.template.service.model.dto.web.RecommendDTO;
import com.ssy.lingxi.platform.template.service.model.vo.adorn.BrandVO;
import com.ssy.lingxi.platform.template.service.model.vo.adorn.CategoryAdornVO;
import com.ssy.lingxi.platform.template.service.model.vo.adorn.CategoryVO;
import com.ssy.lingxi.platform.template.service.model.vo.adorn.GoodsVO;

import java.util.List;

/**
 * @menu 模板装修 - WEB店铺装修 - 业务处理层
 * @author fhj
 * @version 2.0.0
 * @date 2020/12/24
 */
public interface WebStoreService {

    Wrapper<List<CategoryVO>> findAllFirstCategory(MemberIdAndRoleIdDTO dto, Long shopId);

    Wrapper<CategoryAdornVO> memberCategoryAdorn(CategoryAdornDTO dto, UserLoginCacheDTO user);

    Wrapper<List<Advert>> findAdvertsByType(AdvertDTO dto);

    Wrapper<PageData<GoodsVO>> findGoodsList(RecommendDTO dto, UserLoginCacheDTO user);

    Wrapper<CategoryAdornVO> findCategoryList(RecommendDTO dto, UserLoginCacheDTO user);

    Wrapper<PageData<BrandVO>> findBrandList(RecommendDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> saveAdvert(SaveAdvertDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> saveGoods(SaveTemplateAdornDTO dto, UserLoginCacheDTO user);

    Wrapper<Void> saveCategory(SaveTemplateAdornDTO dto, UserLoginCacheDTO user);
}
